1, "exceptions" => 0);
$wrapper = new WortschatzUniLeipzigApiWrapper($username, $password, $options);
$design = new Template();
$func = new Functions();
if ($func->folder_exist($settings['dest'].$settings['src']) === FALSE){ // folder does not exists
// Create instance
$func->copyDirectory($settings);
}
// NAME ENTITY TAGGER
$ner = new \StanfordNLP\NERTagger(
$settings['dest'].'/home/www/www.onetipp.com/library/postagger/bin/stanford-german-2015-10-14-models/edu/stanford/nlp/models/ner/german.dewac_175m_600.crf.ser.gz',
$settings['dest'].'/home/www/www.onetipp.com/library/postagger/bin/stanford-ner-2015-12-09/stanford-ner-3.6.0.jar'
);
// GERMAN POS TAGGER
$pos = new \StanfordNLP\POSTagger(
$settings['dest'].'/home/www/www.onetipp.com/library/postagger/bin/stanford-postagger-full-2015-12-09/models/german-dewac.tagger',
$settings['dest'].'/home/www/www.onetipp.com/library/postagger/bin/stanford-postagger-full-2015-12-09/stanford-postagger-3.6.0.jar'
);
if (strlen($text)<3){
$content = array_merge(
array('robots'=>"INDEX,FOLLOW,ALL"),
array('title'=>"Unique Content Creation by OneTIPP.COM!"),
array('onetipp_original'=>$text),
array('onetipp_results'=>$text),
array('onetipp_debug'=>"$output - OneTIPP Version: $mod_date"),
array('description'=>"Kopiere einen Text und erstelle vollautomatisch einen neuen Text - Leistungsschutzkonform und Urheberrechtlich sicher!")
);
$design->setPath("/home/www/www.onetipp.com/tpl-new");
$design->display('startpage_new', $content, true, false);
exit;
}
$result_pos = $pos->tag(explode(' ', $text));
$result_ner = $ner->tag(explode(' ', $text)); // German Model: I-PER, I-LOC, I-ORG, I-MISC
$arrMerger = array();
$rPos = $func->array_merge_deep($result_pos);
$nPos = $func->array_merge_deep($result_ner);
for ($i=0; $i<=count($rPos)-1; $i++){
$posWord = $rPos[$i][0];
$nerWord = $nPos[$i][0];
$posValue = $rPos[$i][1];
$nerValue = $nPos[$i][1];
// echo "WortPOS: -$key- $posWord --> $posValue : ".count($result_pos[$i])."
\n";
// echo "WortNER: -$key- $nerWord --> $nerValue : ".count($result_ner[$i])."
\n";
if ( strcasecmp($posWord, $nerWord) == 0){
$a = array(
"word"=>$posWord,
"len"=>strlen($posWord),
"pos"=>$posValue,
"ner"=>$nerValue,
);
$GetParamText .= $posWord." ";
array_push($arrMerger, $a);
}
}
/*todo: später
//var_dump($arrMerger);
for ($i=0; $i<=count($arrMerger)-1; $i++){
$valArrMerger = $arrMerger[$i];
$w = $valArrMerger["word"];
$l = $valArrMerger["len"];
$p = $valArrMerger["pos"];
$n = $valArrMerger["ner"];
$GetParamText .= $w." ";
// wenn POS Tag des aktuellen Wortes nicht in verbotener Stopwortliste und kein Eigenname
$ignorePOS = $func->IgnorePosTags();
if (!in_array($p, $ignorePOS) && strcasecmp($n,"O")==0){
////// $suggestion_spell = orthograph($w); // schreibfehler korrigieren
////// echo "Wort:$w [$p:$n] kann verändert werden: Schreibfehler?:->$suggestion_spell!
";
try{
$result = $wrapper->Synonyms($w, 5);
echo "SUCCESS!\n";
echo "Result:\n";
//var_dump($result);
//$arrObject = get_object_vars($results);
//print_r($arrObject);
echo
}
catch(Exception $e){
echo "ERROR! ".$e->getMessage()."\n";
}
}
}
*/
$json_englisch = $func->translateSDL("ger","eng",urlencode($GetParamText));
$objEng = json_decode($json_englisch);
$english_translation = $objEng->translation;
var_dump($objEng);
$json_deutsch = $func->translateSDL("eng","ger",urlencode($english_translation));
$objDeu = json_decode($json_deutsch);
$german_translation = $objDeu->translation;
//var_dump($objDeu);
$d = str_ireplace("ä","ae",$german_translation);
$d = str_ireplace("ö","oe",$d);
$d = str_ireplace("ü","ue",$d);
$d = str_ireplace("&SZLIG;","ss",$d);
$data = htmlspecialchars($d);
/*
Ablauf übersetzung:
1 übersetzen von deutsch ins englische
2 teste ob in englischer übersetzung noch deutsche wörter drin sind und tausche diese aus oder übersetze diese mit einem anderen programm -> https://github.com/Stichoza/google-translate-php
3 englisch synonyme austauschen
4 übersetze von englisch nach deutsch
5 ausgabe
*/
$content = array_merge(
array('robots'=>"INDEX,FOLLOW,ALL"),
array('title'=>"Unique Content Creation by OneTIPP.COM!"),
array('onetipp_original'=>$text),
array('onetipp_results'=>$data),
array('onetipp_debug'=>"$output - OneTIPP Version: $mod_date"),
array('description'=>"Kopiere einen Text und erstelle vollautomatisch einen neuen Text - Leistungsschutzkonform und Urheberrechtlich sicher!")
);
$design->setPath("/home/www/www.onetipp.com/tpl-new");
$design->display('startpage_new', $content, true, false);
//echo $design->display_cache('startpage_new', $content, false, false, 3600*24*3);
// connect to mongodb
$m = new MongoClient("mongodb://127.0.0.1:27017",
array(
"socketTimeoutMS" => 100000
)
);
//echo "Connection to database successfully";
// select a database
$db = $m->OnetippProcessingStorage;
//echo "Database mydb selected";
//$collection = $db->createCollection("storeProcessed");
//echo "Collection created succsessfully";
// select a collection (analogous to a relational database's table)
$c = $m->selectCollection("storeProcessed");
$document = array(
"inserttimestamp_ms" => round(microtime(true) * 1000),
"inserttimestamp_unix" => time(),
"fromText" => "ger",
"toText" => "eng",
"outputLanguage" => "ger",
"toTextContentRaw" => $json_englisch,
"toTextContentPlain" => $english_translation,
"fromTextContentRaw" => $json_deutsch,
"fromTextContentPlain" => $german_translation,
"originalTextInput" => $text,
"autorprofil_id" => "",
"autorprofil_version" => "0.0.0.0"
);
// add a record
$cursor = $collection->insert($document)->timeout(60000);
var_dump($collection);
var_dump($db);
//echo "Document inserted successfully";
var_dump($c->getIndexInfo());
exit(0);
/*
Ablauf:
POS Taggen
NER Taggen
POS UND NER TAG IN EINE GEMEINSAME ARRAY STRUKTUR BRINGEN, Zb
array("word=Haus", "POS=NN", "NER=O")
Spell Check mit ASPELL
wenn Wort länger als gleich 4 zeichen hat,
wenn NER Taggen
NICHT "LOCATION"
oder
NICHT "ORGANIZATION"
oder
NICHT "PERSON"
UND EINSCHLIESSLICH:
POS Taggen
TAG GLEICH "NOMEN" oder "Verb" oder "Adjektiv" oder "Adverb"
=> hier auchnochmal im Python code gucken, was modifiziert werden darf
Nach dem Spell Check, UniLeiptizg nutzen:
Synonme austauschen, wenn
wenn NER Taggen
NICHT "LOCATION"
oder
NICHT "ORGANIZATION"
oder
NICHT "PERSON"
UND EINSCHLIESSLICH:
POS Taggen
TAG GLEICH "NOMEN" oder "Verb" oder "Adjektiv" oder "Adverb"
Dann Translation CALL Machen
dann rück und ausgabe
Dann mit Zeitstempel ein und ausgabe daten in Mongodb speichern
Später:
Autorenprofil
*/